package cola.rh.System.Service;

import cola.rh.System.Entity.Menu;
import cola.rh.System.Entity.vo.AssginMenuVo;
import cola.rh.System.Entity.vo.RouterVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.io.Serializable;
import java.util.List;

/**
 * @Name: MeunService
 * @Author: Cola
 * @Time: 2023/3/11 14:00
 * @Description: MenuService
 */
public interface MenuService extends IService<Menu> {
    /**
     * 菜单树形数据
     *
     * @return
     */
    List<Menu> findNodes();

    /**
     * 根据 ID 删除 先判断是否为菜单 （是：不可以删除 | 否：可以删除）
     *
     * @param id id
     * @return boolean
     */
    boolean removeMenuById(Serializable id);

    /**
     * 根据角色获取授权权限数据
     *
     * @return
     */
    List<Menu> findMenuByRoleId(Long roleId);

    /**
     * 保存角色权限
     *
     * @param assginMenuVo
     */
    void doAssign(AssginMenuVo assginMenuVo);


    /**
     * 获取用户菜单权限
     *
     * @param userId
     * @return
     */
    List<RouterVo> findUserMenuList(Long userId);


    /**
     * 获取用户按钮权限
     *
     * @param userId
     * @return
     */
    List<String> findUserPermsList(Long userId);

}
